Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Certora specs #696

Closed
wants to merge 88 commits into from
Closed

Certora specs #696

wants to merge 88 commits into from

Conversation

otakar-trunda
Copy link

All rules, config and setup from the audit.

Important files:

rules

  • certora/specs/libraries/BeaconChainProofs.spec
  • certora/specs/libraries/Endian.spec
  • certora/specs/libraries/Merkle.spec
  • certora/specs/pods/EigenPod.spec // bellow the line "Added by Certora"
  • certora/specs/pods/EigenPodHooks.spec
  • certora/specs/pods/EigenPodManager.spec // bellow the line "Added by Certora"

setup files

  • setup.spec
  • methodsAndAliases.spec
  • EigenPodMethodsAndSimplifications.spec - most NONDET summaries, simplifications

confs

for the three libraries:

  • certora/confs/beaconChainProofs.conf
  • certora/confs/endian.conf
  • certora/confs/merkle.conf

for EigenPod and EigenPodManager (can be extended to other files)

  • certora/confs/full.conf

(All specs will compile on the audited branch feat/partial-withdrawal-batching. I merged in the latest changes but I didn't yet rerun everything to be sure the specs are synced with the current code. I will adjust it if needed.)

wadealexc and others added 30 commits June 21, 2024 21:29
* move state into Storage contract
* remove withdrawal proof method
* feat: remove beaconChainOracle in favor of 4788
* modify verifyStaleBalance to use plural form
* add pause flags for new methods
* deprecate old state variables
* minor cleanup and commenting
* chore: get things compiling
* i commented out/deleted a bajillion tests
* fix: adjust storage footprint to be consistent with m2
* removes staleness concept from pod and manager state

* clean: clean up start checkpoint logic

* clean: remove comments

* clean: remove outdated comment and rename proofs method

* fix: remove unused variable and deprecate another
* feat: add events for checkpoint creation and progression

* feat: remove unneeded oracle interface from EigenPodManager
* modify activateRestaking flow to use checkpointing
* remove withdrawNonBeaconChainETHBalanceWei in favor of checkpointing
… interface

* chore: fix comment, update interfaces, add event

* chore: clarify comment on activateRestaking
* fix: finish rebase

* chore: make bindings
* test: basic epoch processing
* wip: balance proofs somewhat functional
* test: flesh out beacon chain abi and test workflow
* test: cleanup
* test: add basic invariant checks for checkpoint proofs
* test: add tests for full exits
* also refactors and cleans up BeaconChainProofs
* more refactor/cleanup to come

* chore: more proof library cleanup, removing unused constants

* chore: additional cleanup and renaming of proof constants for consistency

* chore: clean comments and reorganize constants
* fix: rename and add balance proof
* test: fix some unit tests and remove many outdated tests

* test: start setting up new integration tests
* verifyWC -> startCheckpoint in the same block no longer results in a bricked checkpoint
* verifyWC using a timestamp older than the current checkpoint no longer allows you to submit a checkpoint proof for the new validator

* chore: fix outdated comment
* also reduced number of validators being generated by tests (for speed)

* test: flesh out additional pod flows

* chore: make bindings

* test: add checks for several integration tests
* docs: clean and update EigenPodManager docs

* chore: small wip to eigenpod docs and contract comment cleanup
* also minor clarity tweak in verifyCheckpointProofs
* test: testings init

* test: eigenpod unit tests refactor

* test: startCheckpoint unit tests

* test: pod unit tests

* fix: rebase changes
* chore: make bindings

* chore: revert pod changes

* test: add several tests and checks

---------

Co-authored-by: wadealexc <[email protected]>
* chore: cleanup dwr and unused code

* chore: comment out pod specs
* chore: update IEigenPod interface with updated comments
@wadealexc
Copy link
Collaborator

Closing in favor of rebasing via #707

Will merge this over there. Thank you Otakar!

@wadealexc wadealexc closed this Aug 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants